# 作业：
# 1、写一个函数，传入表名和数据库名，然后把这个表里面所有的数据导出到excel里面
# def export_to_excel(table_name, db_name):
#     pass

# 思路：
# 1、建函数，两个入参，表名和数据库名
# 2、取出所有数据库数据
# 3、循环放到excel中

import pymysql
import xlwt

mysql_info={
    "host":"118.24.3.40",
    "user":"jxz",
    "password":"123456",
    "db":"jxz",
    "charset":"utf8",
    "autocommit":True
}


def export_to_excel(table_name, db_name): #定义函数且两个入参表名和库名
    if db_name:#判断入参取库信息
        conn=pymysql.connect(**db_name)
    else:
        conn=pymysql.connect(**mysql_info)
    cursor=conn.cursor(pymysql.cursors.DictCursor)  #建立游标并默认字典类型输出
    sql="select * from %s" % (table_name)  #查询传入的表数据sql
    cursor.execute(sql) #执行sql
    book=xlwt.Workbook()#创建excel
    sheet=book.add_sheet("sheet",cell_overwrite_ok=True)#创建sheet表单，并默认可以重复写入
    j=0
    for i in cursor.description:#通过获取表字段，写入表头
        sheet.write(0,j,i[0])
        j+=1
    row = 1
    for line in cursor:#获取表所有数据循环写入表数据
        col = 0
        for i in line.values():
            print(i)
            sheet.write(row, col, i)
            col += 1
        row+=1

    book.save("%s.xls"% (table_name)) #保存excel表，并且与数据库表名一致
    return True

export_to_excel("students",mysql_info)#调用函数执行

